package cn.com.huzo.service.manufacture;

import cn.com.huzo.model.entities.manufacture.RequisitionSlipHeaderEntity;
import huzofw.service.GenericManager;
import java.util.List;
import java.util.Map;

/**
 * 领料单管理服务对象接口。
 *
 * @author 吴旭
 */
public interface RequisitionSlipHeaderManager extends GenericManager<RequisitionSlipHeaderEntity, Long> {

    /**
     * 得到新的单据号（根据规则自动生成）
     * <p>
     * @return @throws java.lang.Exception
     */
    String fetchNewBillNo() throws Exception;

    /**
     * 根据给定的标识，取得领料单。
     *
     * @param headerId 领料单标识
     * @param currentUserId 当前用户
     * @param workFlowId 领料单审核工作流标识
     * @return
     * @throws java.lang.Exception
     */
    Map<String, Object> fetchByHeaderKey(Long headerId, Long currentUserId, Long workFlowId) throws Exception;

    /**
     * 根据当前领料单的款号得到对应的生产指示书的成品颜色(导出用)
     * <p>
     * @param headerId 领料单ID
     * @return 成品颜色数据
     * @throws java.lang.Exception
     */
    List<Map<String, Object>> fetchProductColour(Long headerId) throws Exception;

    /**
     * 新增领料单（同时也增加对应的明细）
     *
     * @param instance
     * @return 领料单Id、领料明细
     * @throws java.lang.Exception
     */
    Map<String, Object> save(RequisitionSlipHeaderEntity instance)  throws Exception;
}
